package cn.cdiothree.service;

import cn.cdiothree.dto.CartDto;
import cn.cdiothree.dataobject.MyPageHelper;
import cn.cdiothree.dataobject.ProductInfo;
import cn.cdiothree.vo.ProductDetailVo;
import cn.cdiothree.vo.ProductInfoVo;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author CumThing
 * @since 2020-02-02
 */
public interface ProductInfoService extends IService<ProductInfo> {

    /**
     * 根据商品查找商品
     * @param id
     * @return
     */
    ProductDetailVo findByProductId(Integer id);


    /**
     * 根据Id查找商品详情
     * @param id
     * @return
     */
    ProductInfo findById(Integer id);

    /**
     * 查找所有商品信息
     * @param page
     * @param pageSize
     * @return
     */
    IPage<ProductInfo> findAll(int page,int pageSize);

    /**
     * 添加商品
     * @param productInfo
     */
    void insert(ProductInfo productInfo);

    /**
     * 添加库存
     * @param cartDtoList
     */
    void increaseStock(List<CartDto> cartDtoList);

    /**
     * 减少库存
     * @param cartDtoList
     */
    void decreaseStock(List<CartDto> cartDtoList);

    /**
     * 根据类目查找商品信息列表
     * @param num
     * @param size
     * @param parentId
     * @return
     */
    MyPageHelper<ProductInfoVo> getProductInfoVosByParentId(int num, int size, Integer parentId);
}
